package com.love.marriage.userMembershipInfo.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.love.marriage.config.Long2StringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * description:  用户会员表查询Vo
 * author:       system
 * createDate:   2024-12-19
 * version:      1.0.0
 */
@Getter
@Setter
@Accessors(chain = true)
@Schema(name = "UserMembershipInfoQueryVo", description = "用户会员表查询Vo")
public class UserMembershipInfoQueryVo {

    @Schema(description = "会员开始时间-开始", type = "LocalDateTime", implementation = LocalDateTime.class)
    private LocalDateTime startTimeBegin;

    @Schema(description = "会员开始时间-结束", type = "LocalDateTime", implementation = LocalDateTime.class)
    private LocalDateTime startTimeEnd;

    @Schema(description = "会员结束时间-开始", type = "LocalDateTime", implementation = LocalDateTime.class)
    private LocalDateTime endTimeBegin;

    @Schema(description = "会员结束时间-结束", type = "LocalDateTime", implementation = LocalDateTime.class)
    private LocalDateTime endTimeEnd;

    @Schema(description = "会员类型", type = "String", implementation = String.class)
    private String membershipType;

    @Schema(description = "性别(0：男，1：女)", type = "String", implementation = String.class)
    private String gender;

    @Schema(description = "年龄范围-最小", type = "Integer", implementation = Integer.class)
    private Integer ageMin;

    @Schema(description = "年龄范围-最大", type = "Integer", implementation = Integer.class)
    private Integer ageMax;

    @Schema(description = "省份ID", type = "Long", implementation = Long.class)
    @JsonSerialize(using = Long2StringSerializer.class)
    private Long provinceId;

    @Schema(description = "城市ID", type = "Long", implementation = Long.class)
    @JsonSerialize(using = Long2StringSerializer.class)
    private Long cityId;

    @Schema(description = "区ID", type = "Long", implementation = Long.class)
    @JsonSerialize(using = Long2StringSerializer.class)
    private Long districtId;

    @Schema(description = "身高范围-最小", type = "BigDecimal", implementation = BigDecimal.class)
    private BigDecimal heightMin;

    @Schema(description = "身高范围-最大", type = "BigDecimal", implementation = BigDecimal.class)
    private BigDecimal heightMax;

    @Schema(description = "体重范围-最小", type = "BigDecimal", implementation = BigDecimal.class)
    private BigDecimal weightMin;

    @Schema(description = "体重范围-最大", type = "BigDecimal", implementation = BigDecimal.class)
    private BigDecimal weightMax;

    @Schema(description = "收入情况", type = "String", implementation = String.class)
    private String incomeStatus;

    @Schema(description = "职业", type = "String", implementation = String.class)
    private String profession;

    @Schema(description = "婚姻状况", type = "String", implementation = String.class)
    private String maritalStatus;

    @Schema(description = "车房情况", type = "String", implementation = String.class)
    private String carHouseStatus;

    @Schema(description = "会员号/编码", type = "String", implementation = String.class)
    private String code;

    @Schema(description = "用户编码", type = "String", implementation = String.class)
    private String userCode;

    @Schema(description = "会员状态(true:有效, false:已过期)", type = "Boolean", implementation = Boolean.class)
    private Boolean memberStatus;

    @Schema(description = "昵称", type = "String", implementation = String.class)
    private String nickname;

    @Schema(description = "手机号", type = "String", implementation = String.class)
    private String phone;
} 